home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / scsh / network.c < prev    next >
C/C++ Source or Header  |  1995-11-04  |  13KB  |  405 lines

  1. /* This is an Scheme48/C interface file, 
  2. ** automatically generated by cig.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h> /* For malloc. */
  7. #include "libcig.h"
  8.  
  9. #include <sys/types.h>
  10. #include <sys/socket.h>
  11.  
  12. /* Make sure foreign-function stubs interface to the C funs correctly: */
  13. #include "network1.h"
  14.  
  15. extern int errno;
  16. extern int h_errno;
  17.  
  18. #define errno_on_zero_or_false(x) ((x) ? SCHFALSE : ENTER_FIXNUM(errno))
  19. #define errno_or_false(x) (((x) == -1) ? ENTER_FIXNUM(errno) : SCHFALSE)
  20. #define False_on_zero(x) ((x) ? ENTER_FIXNUM(x) : SCHFALSE)
  21. scheme_value df_socket(long nargs, scheme_value *args)
  22. {
  23.     extern int socket(int , int , int );
  24.     scheme_value ret1;
  25.     int r1;
  26.  
  27.     cig_check_nargs(4, nargs, "socket");
  28.     r1 = socket(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]));
  29.     ret1 = errno_or_false(r1);
  30.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  31.     return ret1;
  32.     }
  33.  
  34. scheme_value df_scheme_bind(long nargs, scheme_value *args)
  35. {
  36.     extern int scheme_bind(int , int , scheme_value );
  37.     scheme_value ret1;
  38.     int r1;
  39.  
  40.     cig_check_nargs(3, nargs, "scheme_bind");
  41.     r1 = scheme_bind(EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), args[0]);
  42.     ret1 = errno_or_false(r1);
  43.     return ret1;
  44.     }
  45.  
  46. scheme_value df_scheme_connect(long nargs, scheme_value *args)
  47. {
  48.     extern int scheme_connect(int , int , scheme_value );
  49.     scheme_value ret1;
  50.     int r1;
  51.  
  52.     cig_check_nargs(3, nargs, "scheme_connect");
  53.     r1 = scheme_connect(EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), args[0]);
  54.     ret1 = errno_or_false(r1);
  55.     return ret1;
  56.     }
  57.  
  58. scheme_value df_listen(long nargs, scheme_value *args)
  59. {
  60.     extern int listen(int , int );
  61.     scheme_value ret1;
  62.     int r1;
  63.  
  64.     cig_check_nargs(2, nargs, "listen");
  65.     r1 = listen(EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  66.     ret1 = errno_or_false(r1);
  67.     return ret1;
  68.     }
  69.  
  70. scheme_value df_scheme_accept(long nargs, scheme_value *args)
  71. {
  72.     extern int scheme_accept(int , int , scheme_value );
  73.     scheme_value ret1;
  74.     int r1;
  75.  
  76.     cig_check_nargs(4, nargs, "scheme_accept");
  77.     r1 = scheme_accept(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), args[1]);
  78.     ret1 = errno_or_false(r1);
  79.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  80.     return ret1;
  81.     }
  82.  
  83. scheme_value df_scheme_peer_name(long nargs, scheme_value *args)
  84. {
  85.     extern int scheme_peer_name(int , int , scheme_value );
  86.     scheme_value ret1;
  87.     int r1;
  88.  
  89.     cig_check_nargs(3, nargs, "scheme_peer_name");
  90.     r1 = scheme_peer_name(EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), args[0]);
  91.     ret1 = errno_or_false(r1);
  92.     return ret1;
  93.     }
  94.  
  95. scheme_value df_scheme_socket_name(long nargs, scheme_value *args)
  96. {
  97.     extern int scheme_socket_name(int , int , scheme_value );
  98.     scheme_value ret1;
  99.     int r1;
  100.  
  101.     cig_check_nargs(3, nargs, "scheme_socket_name");
  102.     r1 = scheme_socket_name(EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), args[0]);
  103.     ret1 = False_on_zero(r1);
  104.     return ret1;
  105.     }
  106.  
  107. scheme_value df_shutdown(long nargs, scheme_value *args)
  108. {
  109.     extern int shutdown(int , int );
  110.     scheme_value ret1;
  111.     int r1;
  112.  
  113.     cig_check_nargs(2, nargs, "shutdown");
  114.     r1 = shutdown(EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  115.     ret1 = errno_or_false(r1);
  116.     return ret1;
  117.     }
  118.  
  119. scheme_value df_scheme_socket_pair(long nargs, scheme_value *args)
  120. {
  121.     extern int scheme_socket_pair(int , int *, int *);
  122.     scheme_value ret1;
  123.     int r1;
  124.     int r2;
  125.     int r3;
  126.  
  127.     cig_check_nargs(2, nargs, "scheme_socket_pair");
  128.     r1 = scheme_socket_pair(EXTRACT_FIXNUM(args[1]), &r2, &r3);
  129.     ret1 = errno_or_false(r1);
  130.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r2);
  131.     VECTOR_REF(*args,1) = ENTER_FIXNUM(r3);
  132.     return ret1;
  133.     }
  134.  
  135. scheme_value df_recv_substring(long nargs, scheme_value *args)
  136. {
  137.     extern int recv_substring(int , int , scheme_value , int , int , scheme_value );
  138.     scheme_value ret1;
  139.     int r1;
  140.  
  141.     cig_check_nargs(7, nargs, "recv_substring");
  142.     r1 = recv_substring(EXTRACT_FIXNUM(args[6]), EXTRACT_FIXNUM(args[5]), args[4], EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), args[1]);
  143.     ret1 = errno_or_false(r1);
  144.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  145.     return ret1;
  146.     }
  147.  
  148. scheme_value df_send_substring(long nargs, scheme_value *args)
  149. {
  150.     extern int send_substring(int , int , scheme_value , int , int , int , scheme_value );
  151.     scheme_value ret1;
  152.     int r1;
  153.  
  154.     cig_check_nargs(8, nargs, "send_substring");
  155.     r1 = send_substring(EXTRACT_FIXNUM(args[7]), EXTRACT_FIXNUM(args[6]), args[5], EXTRACT_FIXNUM(args[4]), EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), args[1]);
  156.     ret1 = errno_or_false(r1);
  157.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  158.     return ret1;
  159.     }
  160.  
  161. scheme_value df_scheme_getsockopt(long nargs, scheme_value *args)
  162. {
  163.     extern int scheme_getsockopt(int , int , int );
  164.     scheme_value ret1;
  165.     int r1;
  166.  
  167.     cig_check_nargs(4, nargs, "scheme_getsockopt");
  168.     r1 = scheme_getsockopt(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]));
  169.     ret1 = errno_or_false(r1);
  170.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  171.     return ret1;
  172.     }
  173.  
  174. scheme_value df_scheme_getsockopt_linger(long nargs, scheme_value *args)
  175. {
  176.     extern int scheme_getsockopt_linger(int , int , int , int *);
  177.     scheme_value ret1;
  178.     int r1;
  179.     int r2;
  180.  
  181.     cig_check_nargs(4, nargs, "scheme_getsockopt_linger");
  182.     r1 = scheme_getsockopt_linger(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), &r2);
  183.     ret1 = errno_or_false(r1);
  184.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  185.     VECTOR_REF(*args,1) = ENTER_FIXNUM(r2);
  186.     return ret1;
  187.     }
  188.  
  189. scheme_value df_scheme_getsockopt_timeout(long nargs, scheme_value *args)
  190. {
  191.     extern int scheme_getsockopt_timeout(int , int , int , int *);
  192.     scheme_value ret1;
  193.     int r1;
  194.     int r2;
  195.  
  196.     cig_check_nargs(4, nargs, "scheme_getsockopt_timeout");
  197.     r1 = scheme_getsockopt_timeout(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), &r2);
  198.     ret1 = errno_or_false(r1);
  199.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
  200.     VECTOR_REF(*args,1) = ENTER_FIXNUM(r2);
  201.     return ret1;
  202.     }
  203.  
  204. scheme_value df_scheme_setsockopt(long nargs, scheme_value *args)
  205. {
  206.     extern int scheme_setsockopt(int , int , int , int );
  207.     scheme_value ret1;
  208.     int r1;
  209.  
  210.     cig_check_nargs(4, nargs, "scheme_setsockopt");
  211.     r1 = scheme_setsockopt(EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  212.     ret1 = errno_or_false(r1);
  213.     return ret1;
  214.     }
  215.  
  216. scheme_value df_scheme_setsockopt_linger(long nargs, scheme_value *args)
  217. {
  218.     extern int scheme_setsockopt_linger(int , int , int , int , int );
  219.     scheme_value ret1;
  220.     int r1;
  221.  
  222.     cig_check_nargs(5, nargs, "scheme_setsockopt_linger");
  223.     r1 = scheme_setsockopt_linger(EXTRACT_FIXNUM(args[4]), EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  224.     ret1 = errno_or_false(r1);
  225.     return ret1;
  226.     }
  227.  
  228. scheme_value df_scheme_setsockopt_timeout(long nargs, scheme_value *args)
  229. {
  230.     extern int scheme_setsockopt_timeout(int , int , int , int , int );
  231.     scheme_value ret1;
  232.     int r1;
  233.  
  234.     cig_check_nargs(5, nargs, "scheme_setsockopt_timeout");
  235.     r1 = scheme_setsockopt_timeout(EXTRACT_FIXNUM(args[4]), EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  236.     ret1 = errno_or_false(r1);
  237.     return ret1;
  238.     }
  239.  
  240. scheme_value df_scheme_host_address2host_info(long nargs, scheme_value *args)
  241. {
  242.     extern int scheme_host_address2host_info(scheme_value , char **, char** *, char** *);
  243.     scheme_value ret1;
  244.     int r1;
  245.     char *r2;
  246.     char** r3;
  247.     char** r4;
  248.  
  249.     cig_check_nargs(2, nargs, "scheme_host_address2host_info");
  250.     r1 = scheme_host_address2host_info(args[1], &r2, &r3, &r4);
  251.     ret1 = False_on_zero(r1);
  252.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  253.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  254.     AlienVal(VECTOR_REF(*args,2)) = (long) r4;
  255.     return ret1;
  256.     }
  257.  
  258. scheme_value df_scheme_host_name2host_info(long nargs, scheme_value *args)
  259. {
  260.     extern int scheme_host_name2host_info(const char *, char **, char** *, char** *);
  261.     scheme_value ret1;
  262.     int r1;
  263.     char *r2;
  264.     char** r3;
  265.     char** r4;
  266.  
  267.     cig_check_nargs(2, nargs, "scheme_host_name2host_info");
  268.     r1 = scheme_host_name2host_info(cig_string_body(args[1]), &r2, &r3, &r4);
  269.     ret1 = False_on_zero(r1);
  270.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  271.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  272.     AlienVal(VECTOR_REF(*args,2)) = (long) r4;
  273.     return ret1;
  274.     }
  275.  
  276. scheme_value df_scheme_net_address2net_info(long nargs, scheme_value *args)
  277. {
  278.     extern int scheme_net_address2net_info(scheme_value , scheme_value , char **, char** *);
  279.     scheme_value ret1;
  280.     int r1;
  281.     char *r2;
  282.     char** r3;
  283.  
  284.     cig_check_nargs(3, nargs, "scheme_net_address2net_info");
  285.     r1 = scheme_net_address2net_info(args[2], args[1], &r2, &r3);
  286.     ret1 = False_on_zero(r1);
  287.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  288.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  289.     return ret1;
  290.     }
  291.  
  292. scheme_value df_scheme_net_name2net_info(long nargs, scheme_value *args)
  293. {
  294.     extern int scheme_net_name2net_info(const char *, scheme_value , char **, char** *);
  295.     scheme_value ret1;
  296.     int r1;
  297.     char *r2;
  298.     char** r3;
  299.  
  300.     cig_check_nargs(3, nargs, "scheme_net_name2net_info");
  301.     r1 = scheme_net_name2net_info(cig_string_body(args[2]), args[1], &r2, &r3);
  302.     ret1 = False_on_zero(r1);
  303.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  304.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  305.     return ret1;
  306.     }
  307.  
  308. scheme_value df_scheme_serv_port2serv_info(long nargs, scheme_value *args)
  309. {
  310.     extern int scheme_serv_port2serv_info(int , const char *, char **, char** *, int *, char **);
  311.     scheme_value ret1;
  312.     int r1;
  313.     char *r2;
  314.     char** r3;
  315.     int r4;
  316.     char *r5;
  317.  
  318.     cig_check_nargs(3, nargs, "scheme_serv_port2serv_info");
  319.     r1 = scheme_serv_port2serv_info(EXTRACT_FIXNUM(args[2]), cig_string_body(args[1]), &r2, &r3, &r4, &r5);
  320.     ret1 = False_on_zero(r1);
  321.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  322.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  323.     VECTOR_REF(*args,2) = ENTER_FIXNUM(r4);
  324.     {AlienVal(CAR(VECTOR_REF(*args,3))) = (long) r5; CDR(VECTOR_REF(*args,3)) = strlen_or_false(r5);}
  325.     return ret1;
  326.     }
  327.  
  328. scheme_value df_scheme_serv_name2serv_info(long nargs, scheme_value *args)
  329. {
  330.     extern int scheme_serv_name2serv_info(const char *, const char *, char **, char** *, int *, char **);
  331.     scheme_value ret1;
  332.     int r1;
  333.     char *r2;
  334.     char** r3;
  335.     int r4;
  336.     char *r5;
  337.  
  338.     cig_check_nargs(3, nargs, "scheme_serv_name2serv_info");
  339.     r1 = scheme_serv_name2serv_info(cig_string_body(args[2]), cig_string_body(args[1]), &r2, &r3, &r4, &r5);
  340.     ret1 = False_on_zero(r1);
  341.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  342.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  343.     VECTOR_REF(*args,2) = ENTER_FIXNUM(r4);
  344.     {AlienVal(CAR(VECTOR_REF(*args,3))) = (long) r5; CDR(VECTOR_REF(*args,3)) = strlen_or_false(r5);}
  345.     return ret1;
  346.     }
  347.  
  348. scheme_value df_scheme_proto_num2proto_info(long nargs, scheme_value *args)
  349. {
  350.     extern int scheme_proto_num2proto_info(int , char **, char** *, int *);
  351.     scheme_value ret1;
  352.     int r1;
  353.     char *r2;
  354.     char** r3;
  355.     int r4;
  356.  
  357.     cig_check_nargs(2, nargs, "scheme_proto_num2proto_info");
  358.     r1 = scheme_proto_num2proto_info(EXTRACT_FIXNUM(args[1]), &r2, &r3, &r4);
  359.     ret1 = False_on_zero(r1);
  360.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  361.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  362.     VECTOR_REF(*args,2) = ENTER_FIXNUM(r4);
  363.     return ret1;
  364.     }
  365.  
  366. scheme_value df_scheme_proto_name2proto_info(long nargs, scheme_value *args)
  367. {
  368.     extern int scheme_proto_name2proto_info(const char *, char **, char** *, int *);
  369.     scheme_value ret1;
  370.     int r1;
  371.     char *r2;
  372.     char** r3;
  373.     int r4;
  374.  
  375.     cig_check_nargs(2, nargs, "scheme_proto_name2proto_info");
  376.     r1 = scheme_proto_name2proto_info(cig_string_body(args[1]), &r2, &r3, &r4);
  377.     ret1 = False_on_zero(r1);
  378.     {AlienVal(CAR(VECTOR_REF(*args,0))) = (long) r2; CDR(VECTOR_REF(*args,0)) = strlen_or_false(r2);}
  379.     AlienVal(VECTOR_REF(*args,1)) = (long) r3;
  380.     VECTOR_REF(*args,2) = ENTER_FIXNUM(r4);
  381.     return ret1;
  382.     }
  383.  
  384. scheme_value df_veclen(long nargs, scheme_value *args)
  385. {
  386.     extern scheme_value veclen(const long * );
  387.     scheme_value ret1;
  388.     scheme_value r1;
  389.  
  390.     cig_check_nargs(1, nargs, "veclen");
  391.     r1 = veclen((const long * )AlienVal(args[0]));
  392.     ret1 = r1;
  393.     return ret1;
  394.     }
  395.  
  396. scheme_value df_set_longvec_carriers(long nargs, scheme_value *args)
  397. {
  398.     extern void set_longvec_carriers(scheme_value , long const * const * );
  399.  
  400.     cig_check_nargs(2, nargs, "set_longvec_carriers");
  401.     set_longvec_carriers(args[1], (long const * const * )AlienVal(args[0]));
  402.     return SCHFALSE;
  403.     }
  404.  
  405.